/* Some tracking on gesture events */
guint gesture_n_fingers;
gdouble gesture_scale;
+
+ GdkCursor *grab_cursor;
};
G_DEFINE_TYPE (GdkWaylandSeat, gdk_wayland_seat, GDK_TYPE_SEAT)
if (device == wd->touch_master)
return;
+ if (wd->pointer_grab_window)
+ cursor = wd->grab_cursor;
+
/* Setting the cursor to NULL means that we should use
* the default cursor
*/
evtime,
FALSE);
+ g_set_object (&wayland_seat->grab_cursor, cursor);
g_set_object (&wayland_seat->cursor, cursor);
gdk_wayland_device_update_window_cursor (wayland_seat);
}
GdkDisplay *display = gdk_seat_get_display (seat);;
GdkDeviceGrabInfo *grab;
+ g_clear_object (&wayland_seat->grab_cursor);
+
+ if (wayland_seat->pointer_grab_window)
+ {
+ _gdk_wayland_window_set_grab_seat (wayland_seat->pointer_grab_window,
+ NULL);
+ wayland_seat->pointer_grab_window = NULL;
+ }
+
if (wayland_seat->master_pointer)
{
GdkWindow *focus, *prev_focus = NULL;
if (grab)
grab->serial_end = grab->serial_start;
}
-
- if (wayland_seat->pointer_grab_window)
- {
- _gdk_wayland_window_set_grab_seat (wayland_seat->pointer_grab_window,
- NULL);
- wayland_seat->pointer_grab_window = NULL;
- }
}
static GdkDevice *